package com.isotronica.neveras.datos.daos;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import com.isotronica.neveras.util.vos.DatosVO;

public class DatosDAO extends GenericDAO<DatosVO> {

	public DatosDAO(Connection connection) {
		super(connection);

		creator = new CallBackCreator<DatosVO>() {
			public DatosVO create(ResultSet rs) throws SQLException {
				DatosVO vo = new DatosVO();
				vo.setIdDatos(rs.getInt("idDatos"));
				vo.setNevera_idNevera(rs.getInt("nevera_idNevera"));
				vo.setFecha(rs.getDate("fecha"));
				vo.setHora(rs.getTime("hora"));
				vo.setEnergia(rs.getString("energia"));
				vo.setHumedad(rs.getDouble("humedad"));
				vo.setTemperatura(rs.getDouble("temperatura"));
				return vo;
			}

			public String getIdColumn() {
				return "idDatos";
			}
		};
		super.setCreator(creator);

	}

	public ArrayList<DatosVO> getUltimoDato(int neveraId) {
		ArrayList<Object> parametros = new ArrayList<Object>();
		parametros.add(neveraId);

		try {
			return new ArrayList<DatosVO>(super.callStorageQuery(
					"getUltimoDato", parametros));
		} catch (SQLException e) {
			e.printStackTrace();
			return null;
		}

	}

	public String insert(DatosVO dato) {
		ArrayList<Object> parametros = new ArrayList<Object>();
		parametros.add(dato.getNevera_idNevera());
		parametros.add(dato.getFecha());
		parametros.add(dato.getHora());
		parametros.add(dato.getTemperatura());
		parametros.add(dato.getHumedad());
		parametros.add(dato.getEnergia());

		try {
			return super.callStorageInsert("insertDatos", parametros);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;

	}
	
	public String insertTemporal(DatosVO dato) {
		ArrayList<Object> parametros = new ArrayList<Object>();
		parametros.add(dato.getNevera_idNevera());
		parametros.add(dato.getFecha());
		parametros.add(dato.getHora());
		parametros.add(dato.getTemperatura());
		parametros.add(dato.getHumedad());
		parametros.add(dato.getEnergia());

		try {
			return super.callStorageInsert("insertDatosTemporal", parametros);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;

	}
	
	

}
